//所有的变量在对应的内存位置上都有一个地址.指针的作用就是保存这个地址

//指针用于保存变量的内存地址


// 数组变量其实就是一个指针变量,存放的就是数组中的第一个元素的起始地址


int main(){
    int a = 20;
    int *p = &a; // p是指针 &a取地址
}

//指针数组：一个数组，其中的每个元素都是一个指针。 ;  指针数组：类型* 数组名[大小];
//数组指针：一个指针，指向一个数组。 ;  数组指针：类型 (*指针名)[大小];



//函数指针：一个指针，指向一个函数。
//声明形式：返回类型 (*指针名)(参数列表);
//用途：通过指针调用函数，常用于回调函数、函数表等场景。

//指针函数：一个函数，返回值是一个指针。
//声明形式：返回类型* 函数名(参数列表);
//用途：返回一个指针，常用于动态内存分配、访问数组等场景。